"use strict"

//按照数组中对象的某一个属性值进行排序
var arr=[56,3,24,4,566,9];
arr.sort123=function(fn){//用一个匿名函数作为sort()的参数，fn 为任意形参
    //若不理解fn是什么，可以先用打印输出语句去“了解”一下
    console.log(fn);
    //可以先来一个判断，判断传入的实参是否符合我们所要运行的条件（比如数据类型是否符合，格式是否符合等）否则若传入不合适的参数，结果会返回undefined
    if (fn===undefined||typeof(fn)!=='function') {
        arr.sort123((a,b)=>a>b);
    }
    for (var j = 0; j < this.length; j++) {
    var item = this[j];
    var index = 0;
    for (var i = j+1; i < this.length; i++) {
        if (fn(item,this[i])>0) {//若想要将传入写成 arr.sort123((a,b)=>a-b)，可以给它多种条件，当它大于、小于、等于0时
            item = this[i]
            index=i
        }
    }
        if (this[j]!==item) {
            var a=this[j]
            this[j]=this[index]
            this[index]=a
    }
    console.log(arr);
    }
}
// arr.sort123();//调用方法
// arr.sort123((a,b)=>a-b)
arr.sort123(function(a,b){ return a>b; })